package executables;

import java.io.IOException;

import modules.exports.ExportLilyPond;
import modules.imports.ImportASCII;
import core.Partition;


/**
 * @author Guillaume, Paul
 * Cette classe permet de generer un fichier Ly a partir d'un fichier ASCII.
 * Le fichier Ly est ensuite converti au format pdf et midi
 */
public class AsciiToLy {
	public static void main(String[] args) {
		if(args.length != 1)
		{
			System.err.println("Erreur : Un argument requis");
			System.out.println("Usage : AsciiToLy 1 : Partition Nickelback");
			System.out.println("Usage : AsciiToLy 2 : Partition Linkin Park");
			System.out.println("Usage : AsciiToLy 3 : Generation de Break");
		}
		else
		{
			String auteur;
			String album;
			double tempo;
			String titre;
			String file_name;
			String annee;
			String dirFichierExport = "./";
			
			switch(Integer.parseInt(args[0])){
				case 1 :
					auteur = "Nickelback";
					album = "Silver Side Up";
					tempo = 85;//138.80;
					titre = "How you remind me";
					file_name = "./tabs/Nickelback/how_you_remind_me.tab";
					annee = "2001"; 
				break;
				case 2 :
					auteur = "Linkin Park";
					album = "Minutes to Midnight";
					tempo = 108;
					titre = "Valentines Day";
					file_name = "./tabs/Linkin_park/valentines_day.tab";
					annee = "2007"; 
				break;
				case 3 :
					auteur = "G&P";
					album = "nc";
					tempo = 90;//138.80;
					titre = "Mesures et Breaks";
					file_name = "./tabs/breaks.tab";
					annee = "2011"; 
				break;
				default :
					auteur = "Nickelback";
					album = "Silver Side Up";
					tempo = 85;//138.80;
					titre = "How you remind me";
					file_name = "./tabs/Nickelback/how_you_remind_me.tab";
					annee = "2001"; 
				break;
			}
			
			Partition p;
			try {
				p = ImportASCII.importer(file_name, titre, auteur, annee, album, tempo, true);
				String nomFichierExport = p.getTitre().replace(" ", "_");

				ExportLilyPond.exporter(p, dirFichierExport+nomFichierExport);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
